package com.sunyard.manage.service;

import com.sunyard.dal.bo.operator.OperatorAuditBO;
import com.sunyard.dal.bo.operator.OperatorAuditChangeQueryBO;
import com.sunyard.dal.bo.operator.OperatorAuditQueryBO;
import com.sunyard.dal.bo.PaginationBO;
import com.sunyard.dal.dto.OperatorCopyDTO;
import com.sunyard.utils.Response.BaseResult;
import com.sunyard.utils.manage.DataGrid;
import org.springframework.web.bind.annotation.RequestBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;

/**
 * @author jiy.fang
 * @ClassName OperatorAuditService
 * @Description description
 * @date 2019/7/25 10:02
 */
public interface OperatorAuditService {

    /**
     * @description 分页查询用户审核信息
     * @author tsz
     * @date 2022/12/16
     * @param request
     * @param queryBO
     * @return DataGrid<OperatorCopyDTO> 
     * @throws 
    */
    DataGrid<OperatorCopyDTO> queryOperatorListAuditByPage(HttpServletRequest request, PaginationBO<OperatorAuditQueryBO> queryBO);

    /**
     * @description 用户审核导出
     * @author tsz
     * @date 2022/12/16
     * @param response
     * @param operatorAuditQueryBO
     * @param request
     * @return void 
     * @throws 
    */
    void operatorAuditExport(HttpServletResponse response, @RequestBody OperatorAuditQueryBO operatorAuditQueryBO, HttpServletRequest request);

    /**
     * @description 用户审核
     * @author tsz
     * @date 2022/12/16
     * @param request
     * @param operatorAuditBO
     * @return BaseResult 
     * @throws 
    */
    BaseResult operatorAudit(HttpServletRequest request, OperatorAuditBO operatorAuditBO) throws Exception;

    /**
     * @description 用户审核信息对比
     * @author tsz
     * @date 2022/12/16
     * @param changeQueryBO
     * @return Map<Object,Object> 
     * @throws 
    */
    Map<Object, Object> queryOperatorRecordChange(OperatorAuditChangeQueryBO changeQueryBO);

    /**
     * @description 用户批量审核
     * @author tsz
     * @date 2022/12/16
     * @param request
     * @param operatorAuditBO
     * @return BaseResult
     * @throws
    */
    BaseResult batchOperatorAudit(HttpServletRequest request, OperatorAuditBO operatorAuditBO) throws Exception;
}
